Dino Geek essaye de t'aider

Quelle est la différence entre `include_once` et `require_once` ?


La principale différence entre `include_once` et `require_once` en PHP réside dans la manière dont ces fonctions gèrent l’inclusion de fichiers et la façon dont elles réagissent en cas d’erreur.

`include_once` et `require_once` sont utilisées pour inclure et évaluer un fichier une seule fois dans le cadre d’un script, afin d’éviter des inclusions multiples qui pourraient causer des redéfinitions de fonctions ou de classes. Cependant, leur comportement diffère en matière de gestion des erreurs.

  1. `include_once`
    La fonction `include_once` inclut et évalue le fichier spécifié durant l’exécution du script. Si le fichier spécifié ne peut pas être inclus, un avertissement (`warning`) sera émis, mais le script continuera à s’exécuter. Cela est utile lorsque le fichier n’est pas essentiel au bon fonctionnement du script mais qu’il peut apporter des fonctionnalités supplémentaires.

Par exemple, supposons que nous ayons deux fichiers, fichier1.php et fichier2.php :
- fichier1.php : \`\`\`php \`\`\`

- fichier2.php : \`\`\`php \`\`\`

Lorsque fichier1.php est exécuté, le contenu de fichier2.php sera inclus une seule fois et évalué :
```
Fichier 2 chargé.
Fichier 1 chargé.
```

Si fichier2.php n’existe pas, le message suivant sera affiché mais le script continuera :
```
Warning: include_once(fichier2.php): failed to open stream: No such file or directory in /path/to/fichier1.php on line 2

Warning: include_once(): Failed opening ‘fichier2.php’ for inclusion (include_path=’.:/usr/local/lib/php’) in /path/to/fichier1.php on line 2
Fichier 1 chargé.
```

  1. `require_once`
    La fonction `require_once` fonctionne de manière similaire à `include_once`, à la différence près que si le fichier spécifié ne peut pas être inclus, une erreur fatale (`fatal error`) sera déclenchée, arrêtant ainsi l’exécution du script. Cela est approprié lorsque le fichier est essentiel au bon fonctionnement du script.

Supposons que nous modifions fichier1.php pour utiliser `require_once` :
- fichier1.php : \`\`\`php \`\`\`

Lorsque fichier1.php est exécuté, si fichier2.php est disponible, le résultat sera le même que précédemment :
```
Fichier 2 chargé.
Fichier 1 chargé.
```

Mais si fichier2.php n’existe pas, le script s’arrêtera immédiatement avec une erreur fatale :
```
Warning: require_once(fichier2.php): failed to open stream: No such file or directory in /path/to/fichier1.php on line 2

Fatal error: require_once(): Failed opening required ‘fichier2.php’ (include_path=’.:/usr/local/lib/php’) in /path/to/fichier1.php on line 2
```

  1. En résumé
    - `include_once` : Inclut le fichier une seule fois, émet un avertissement si le fichier n’est pas trouvé mais continue l’exécution du script.
    - `require_once` : Inclut le fichier une seule fois, émet une erreur fatale si le fichier n’est pas trouvé et arrête l’exécution du script.

  1. Sources :
    - [Documentation officielle PHP sur include\_once](https://www.php.net/manual/fr/function.include-once.php)
    - [Documentation officielle PHP sur require\_once](https://www.php.net/manual/fr/function.require-once.php)

Ces comportements différents permettent aux développeurs de choisir l’approche la plus appropriée en fonction de l’importance du fichier à inclure pour l’exécution du script.


Générez simplement des articles pour optimiser votre SEO
Générez simplement des articles pour optimiser votre SEO





DinoGeek propose des articles simples sur des technologies complexes

Vous souhaitez être cité dans cet article ? Rien de plus simple, contactez-nous à dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nom de Domaine | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Mentions Légales / Conditions Générales d'Utilisation